package com.hosever.core;

import java.util.List;

import com.hosever.core.model.Page;
import com.hosever.core.model.PageRequest;

public interface AbstractService<E> {
	/**
	 * 实体列表
	 * @return
	 */
	List<E> list();
	
	/**
	 * 分页列表
	 * @return
	 */
	Page<E> page(PageRequest pageRequest);
	
	/**
	 * 根据id 获取实体
	 * @param id
	 * @return
	 */
	E findById(String id);
	
	/**
	 * 保存
	 * @param e
	 * @return
	 */
	boolean save(E e);
	
	/**
	 * 更新
	 * @param e
	 * @return
	 */
	boolean update(E e);
	
	/**
	 * 删除
	 * @param e
	 * @return
	 */
	boolean del(E e);
	
	/**
	 * 自定义查询(单个)
	 * @param hql
	 * @return
	 */
	E customQuerySingle(String hql);
	/**
	 * 自定义查询(列表)
	 * @param hql
	 * @return
	 */
	List<E> customQuery(String hql);
}
